package com.cskaoyan.basic._2variable._3notice;

/**
 * 表达式的类型提升
 * 什么是表达式：由运算符和操作数组成的一个有结果的式子就是表达式。
 *
 * 假如表达式中的操作数由多种数据类型组冲，那么这个表达式的结果的数据类型是什么呢？
 * 首先结果的数据类型肯定是唯一的，而且是表达式中取值范围最大的那个数据类型
 *
 * 注意事项：
 *      1.表达式的类型提升仅在存在变量组成的表达式中生效，如果表达式全部都是常量，不遵循表达式的类型提升。
 *      2.byte、short、char之间不互相转换，一旦发生运算，一律自动转换为int进行运算，结果是int
 *      3.字符串可以用"+"做拼接运算，并且字符串参与拼接运算的表达式结果一定是字符串。（数值运算double是老大，但是字符串参与进来后，字符串就是老大）
 *
 * @since 10:07
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo3 {
    public static void main(String[] args) {
        int a = 10;
        byte b = 20;
        // .var快速生成左边
        int result = a + b;

        float c = 30;
        float result2 = a + b + c;

        double d = 40;
        double result3 = a + b + c + d;

        byte a1 = 100;
        byte a2 = 50;
        int result4 = a1 + a2;


        String str = "666";
        String result5 = a + b + c + d + str;

    }
}
